home *** CD-ROM | disk | FTP | other *** search
- Shell History.
-
-
-
- Released versions.
- ------------------
-
-
- 1.00 19-May-1994
-
-
- 1.11 17 Nov 1994
-
- Added spriterects, to which you can redirect all graphics.
-
- Added a Save library, as Shell uses a newer version of Save_ than that
- supplied with DeskLib.
-
- Added shell sprites to the Shell directory, and also ShellLib$Path
- (thanks to Alan Fitch for these.
-
- Tidied up the example program a lot, and made a few small changes to
- various sub-libraries.
-
-
-
-
-
- Details
- -------
-
-
- 15-Apr-1994
-
- Made Shell_ReLabel take notice of the rectangle's update_time, so that
- the label is only updated slowly. This was mildly complicated because
- the rect has to be redrawn imediately if the label changes size.
-
- 18-Apr-1994
-
- Added Shell_AddDoubleBarGraph2.
- Changed Shell_OpenGFXWindow to Shell_OpenWindow. Put a '#define
- Shell_OpenGFXWindow Shell_OpenWindow' in Shell.Shell.h' so old programs
- still run.
-
-
- 26-Apr-1994
- Changed to open windows open_NEARLAST instead of open_UNDERPOINTER
-
-
-
- 02-May-1994
-
- Added Shell_Printf, which just calls Shell_TextRectPrint( NULL, ...).
- This provides a simple replacement for printf.
-
-
-
- 03-May-1994
-
- Changed Shell_2DDoubleArray so that it can save an array. I rather
- shortsitedly forgot to save the size of a 2DDouble array so had to copy
- bits of Shell_GeneralArray code.
-
-
- 04-May-1994
-
- Added 'Shell_WaitPrintf'. This is the same as Shell_Printf, but stores
- the string to be printed in a malloc block and only sends it to
- Shell_TextRectPrintf( NULL, ...) on the next event_NULL. This makes it
- capable of being called from within (for e.g.) a window-redrawing
- function (Using Shell_Printf from within such a function will confuse
- the Wimp as Shell_Printf will call Wimp_ForceRedraw etc).
-
-
-
- 05-May-1994
-
- changed the (convert_block *) passed to Shell_ redraw functions to a
- special wimp_point (typedef-ed as a Shell_convertpoint): A convert_block
- contains 6 ints: rect.min/max.x/y, scroll.x/y, but all that is really
- needed is 2 ints.
-
- For example, we could do the following:
-
-
- int RedrawFn( ... )
- {
- typedef wimp_point Shell_convert_block;
-
- Shell_convert_block convert;
-
- convert.x = visiblearea.min.x - scroll.x;
- convert.y = visiblearea.max.y - scroll.y;
-
- /*then:*/
-
- screen.x = workarea.x + convert.x;
- screen.y = workarea.y + convert.y;
-
- /*or*/
-
- workarea.x = screen.x - convert.x;
- workarea.y = screen.y - convert.y;
- }
-
- Here, 'convert.x/y' is the screen coordinates of the origin of the
- window. Note that this is not restricted to the actual physical screen.
-
- When redrawing, one could set the GFX origin to (convert.x, convert.y)
- and then use OS_Plot with workarea coors. The problem with doing this is
- that OS_Plot only accepts 16 bit numbers, so doing this with large
- windows doesn't work. (Apparently RO3.5 OS_Plot uses the full 32 bit
- representation.)
-
- Anyway, the above method means that we only have to pass 2 ints to the
- redrawing functions, and the said fns have a simpler job of converting
- to the screen coors. Also, I pass the Shell_convert_block directly (as 2
- ints) rather than passing a pointer, to increase speed.
-
-
-
- 06-May-1994
-
- Added a new rectangle type - PlainRect. The idea is to define a plain
- rect on top of (so it gets shift-menu clicks) a group of graphical
- rects; saving a Plain rect will create a Sprite which contains the
- contents of the window in the region of the plain-rect. This means you
- can create a sprite of an area of a shell window, even if the area is
- bigger than the screen-size. I did this because one of my programs
- displays some BlockRects which I wanted to include in a document. I used
- to grab parts of the window using Paint and then stick them together,
- but by defining a transparent plain-rect which covers all the block
- rects, I can now save the entire region as a sprite. NB this works by
- creating a sprite in memory, redirecting all VDU to this sprite,
- redrawing the region using a doctored Shell_convertpoint, then switching
- output back to the screen. At the moment, text is half-height compared
- to a mode-31 screen, and icon borders/backgrounds don't appear in the
- sprite. I don't know why as yet.
-
- Also altered the save functions so that rects are saved with particular
- filetypes - Paint only accepts sprite files for e.g. so this was
- important for saving plainrects. The default is to save data as text.
-
-
- 10-May-1994
-
- Maybe all Shell rectangle redrawing routines should work in coordinates
- which are relative to the bottom-left of the rectangle. This would be
- easy to do with the new Shell_onvertpoint, and would mean that less info
- has to be passed to the redrawing routine - instead of the bigrect,
- which tells the routine what the original rectangle size was, just pass
- a wimp_point, size.x/y which tells how big the rect is. It would also
- simplify much of the redrawing code, which at the moment seeems to do a
- lot of ( x + bigrect.min.x, y+bigrect.min.y) etc. Ummm...
-
-
- 16-May-1994
-
- Added a different version of Shell_AddPlainRect called
- Shell_AddPlainGreyRect. This is identical to a normal plainrect, except
- when you save it, Shell creates a 256-colour sprite with a grey-scale
- palette. I did this so I could export useful sprites for including in
- documents - previously, I had used large Shell_blockrects so that the
- ESG-ing would give ~256 greys, but these got a bit big (1-2 MB!). Now
- you can display small blockrects, save them as a grey-sprite, and
- include magnified versions of them in Draw or wordprocesser files. (Can
- you tell it's write-up-thesis time?). Note that this will only work well
- if the shellrects inside the plaingreyrect use ColourTrans_SetGcol etc
- instead of Wimp_SetColour. DeskLib makes it very simple to use
- ColourTrans so this is not a big problem.
-
-
-
- 18-May-1994
-
- Changed the headers to do a
-
- #ifndef __dl_wimp_h
- #include "DeskLib:Wimp.h"
- #endif
-
- to speed compilation.
-
- Also changed the order of #includes in Shell.*.c so that the simpler
- headers are included first (e.g. <*.h>, "DeskLib.*.h", "Shell.*.h". This
- way, headers are never loaded twice, but source files don't have to do
- any #ifndef __dl_wimp_h etc. Of course, most headers have #ifndef
- __dl_wimp_h, #define ... ... #endif, but this method still involves
- loading the header file from disc so is slow.
-
-
-
- 18-May-1994
-
- Altered the makefile to use -fah flags for cc. These check for variables
- being used before they are set etc. Added macro #define UNUSED(x)
- (x)=(x) to Shell.Shell.h as many functions don't use dome of their
- parameters, which causes a warning from Desktop CC.
-
-
-
- 1.00 19-May-1994
-
- Tidied up the Shell_AddPlainRect/Shell_AddPlainGreyRect code.
-
- *************************************************
- *****Released to stuttgrt and wombat*************
- *************************************************
-
-
-
-
-
-
-
- 1.01 14 Jul 1994
-
- Made Shell_PrintString into a macro.
-
-
- 1.02 26 Jul 1994
-
- Added Shell_AddSpriteRect - makes a rect which is a sprite, and allows
- you to redirect to this sprite. Also allows you to save the sprite.
-
- The sprite handling in Shell is a bit messy. Changing mode doesn't work
- properly for example, as the sprite is only displayed properly in the
- original mode.
-
- Added Shell_Print( string) which is a macro to print a string to the
- default window, with no formating etc. This is useful when printing big
- (>1024 chrs) chunks of text to the default output window in one go.
-
- 1.03 29 Aug 1994
-
- Made Shell_TextRectPrint return if null string - stops fickering
-
-
- 1.04 30 Aug 1994
-
- Added Shell_ForceRectRedrawAll - redraws any border of the rect
-
-
- 1.05 04 Nov 1994
-
- Added the Save library - this is just the Save 1.02 from DeskLib, with
- 'Shell_Save02_ prefixing every function name etc. The reason for doing
- this is that DeskLib has been released with Save 1.00, but Shell has
- been updated to use Save 1.02 which contains many improvents (by Jason
- Howat). I thought a new version of DeskLib would be released with Save
- 1.02, but this hasn't happened. Hence as a stop-gap, this version of
- Shell has its own Save_ library, and doesn't use the DeskLib one.
-
- Modified the ShellEG demonstration program to put a sprite supplied by
- Alan Fitch onto the iconbar.
-
- Put Alan Fitch's !Run and !Boot files into the Shell directory.
-
- Tidied up ShellDemo so that it only uses DeskLib and ShellLib and none
- of my own other libs.
-
-
- 1.06 10 Nov 1994
-
- Made Shell_AddBarIcon return the icon handle of the bar icon.
- Made Shell_Poll restore the old event_mask when it returns.
-
-
- 1.10 17 Nov 1994
-
- A few changes to the docs.
-
- 1.11 22 Nov 1994
-
- Removed multiple definitions of Shell_FindWindBlock, and added #define
- for Error_PLACE.
-
-
- 1.12 23 Nov 1994
-
- Corrected incorrect OS_SpriteOp SWI number in RedrawToSp.c. Thanks to
- David Bilsby for finding this bug.
-
-
- 1.13 06 Dec 1994
-
- Included an EasyC-compatible version of ShellLib. Thanks to Ian
- MacDougall for this.
-